﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LiteUart
{
    class CharacterParsing
    {
        bool isEscapeSequence = false;
        bool isCSISequences = false;
        bool isOSC = false;

        public void Input(char character)
        {
            switch (character)
            {
                case '\x000'://空白字符 忽略
                    break;
                case '\x007':// \a 蜂鸣器
                    break;
                case '\x008':// \b 退格一位，但是不破坏数据
                    break;
                case '\x00a'://LF （0x0A， +J） 
                case '\x00b':// VT （0x0B， +K）
                case '\x00c':// 和 FF （0x0C， +L）
                    //都视为换行，如果是 LF/NL（新行模式）也设置为回车;
                    break;
                case '\x00d': //CR 回车
                    break;
                case '\x01B': //开启转义序列
                    isEscapeSequence = true;
                    break;
                default:
                    if (isEscapeSequence)
                    {
                        switch (character)
                        {
                            case '[':
                                isCSISequences = true;
                                break;
                            case ']':
                                isOSC = true;
                                break;
                        }
                    }
                    else if (isCSISequences)
                    {

                    }
                    break;
            }
        }
    }
}
